#pragma once
#include <fstream>
#include <iostream>
#include <json/json.h>
#include <vector>
#include <map>
#include <mutex>
#include <string>


extern std::string IP;
extern int Upper_Computer_Port;
extern int Controller_Port;
extern int Communication_Port;
extern int Teaching_Port;

// 上位机套接字
extern int Upper_Computer_fd;
// 控制器套接字
extern int Controller_fd;
// 示教器套接字
extern int Communication_fd;

// TCP字节通信长度
extern int Upper_Computer_Byte_Length;
extern int Controller_Byte_Length;

// 上位机接收数据
extern std::vector<uint8_t> ReceivedDataBufferUpper;
// 控制器接收数据
extern std::vector<uint8_t> ReceivedDataBufferController;
// 相机程序运行
extern bool IsServerStart;
// 9点标定，获取圆点位并发送
extern bool IsGetCirclePoint;
// 主程序根目录
extern const std::string executablePath;
// 日志文件夹，保存文件
extern const std::string LogFloderPath;
extern const std::string LogFilePath;
// 控制器基本配置文件
extern const std::string ConfigureFilePath;
// 模板JSON文件
extern const std::string SaveJsonPath;
// 模板文件夹
extern const std::string SaveImageFloderPath;
// 配置参数文件夹，文件名
extern const std::string ParamFloderPath;
extern const std::string ParamFilePath;
// 作业文件
extern const std::string JobFileFloderPath;

